yield 表示的是生成器,挺有用的。 微进程通信之类的,每次执行 .next() 后函数才再次执行。
def func(x): for i in xrange(x): yield i*i for i in func(10): print i, >> 0 1 2 4 9 16 25 36 49 64 81
for i in func(10): 此句其实在执行时会自动执行 .next() 函数,并在最后一个读取元素后,出现异常后结束读取。